package com.example.demo.mapper;

import com.example.demo.domain.entity.User;
import com.example.demo.domain.exam.ExamClass;
import com.example.demo.domain.exam.Paging;
import com.example.demo.domain.exam.condition.ExamClassStaffCondition;
import com.example.demo.domain.exam.condition.ExamStaffCondition;
import com.example.demo.dto.ExamClassStaffDTO;
import com.example.demo.dto.TrainingClassDTO;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface ExamClassMapper extends EasyBaseMapper<ExamClass> {

    List<ExamClassStaffDTO> getUserByClassId(@Param("classId") Long classId);

    List<ExamClassStaffDTO> pageUserById(@Param("c") ExamStaffCondition condition, @Param("p") Paging paging);

    List<ExamClassStaffDTO> getUserByNotInTrainingClass();

    List<ExamClassStaffDTO> pageUserByNotInTrainingClass(@Param("c") ExamStaffCondition condition, @Param("p") Paging paging);

    List<TrainingClassDTO> getTrainingClass(@Param("creatorId") Long creatorId);

    List<ExamClassStaffDTO> pageExamClassStaff(@Param("c") ExamClassStaffCondition condition, @Param("p") Paging paging);

    Long countExamClassStaff(@Param("c") ExamClassStaffCondition condition, @Param("p") Paging paging);

    List<User> getUserByUserIds(@Param("userIds") List<Long> userIds);

}
